// Package myexcel
// @Author: zhangdi
// @File: gen_struct_list
// @Version: 1.0.0
// @Date: 2023/10/20 14:58
package myexcel

import (
	"errors"
	"server/pkg/filehelper"
	"server/pkg/myreflect"
)

// GenStructListFile 传入列表数据，构造excel数据并保存
func GenStructListFile(listData any, emptyStruct any, filePath string) error {
	excel := NewExcelHelper()
	rows, err := excel.ConvertToRows(listData) //转成二维数组
	if err != nil {
		return err
	}
	//获取excel的头
	headers := myreflect.GetJSONTags(emptyStruct)
	excel.SetHeaders(headers, 20)
	//设置值
	excel.AppendRows(rows)
	err = excel.SaveToFile(filePath)
	if err != nil {
		return err
	}

	if !filehelper.FileExists(filePath) {
		return errors.New("文件构造失败")
	}
	return nil
}
